package com.homeassistant.xml;

import java.io.InputStream;
import java.util.ArrayList;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.DefaultHandler;

import com.homeassistant.updata.UpdataContentHandler;

/**
 * 解析远程服务器上xml文件
 * 
 * @author ym
 * 
 */
public class ParseXmlUtils {

	/**
	 * 读取XML文件
	 * 
	 * @param mInputStream
	 *            要解析的文档
	 * @param mDefaultHandler
	 * 
	 * 1 创建SAXParserFactory对象
	 * 2 根据SAXParserFactory.newSAXParser()方法返回一个SAXParser解析器
	 * 3 根据SAXParser解析器获取事件源对象XMLReader
	 * 4 实例化一个DefaultHandler对象
	 * 5 连接事件源对象XMLReader到事件处理类DefaultHandler中
	 * 6 调用XMLReader的parse方法从输入源中获取到的xml数据
	 * 7 通过DefaultHandler返回我们需要的数据集合。
	 * @throws Exception 
	 */
	public void ReadXML(InputStream mInputStream, DefaultHandler mDefaultHandler) throws Exception {
		SAXParserFactory mSAXParserFactory = SAXParserFactory.newInstance();
		SAXParser mSAXParser = mSAXParserFactory.newSAXParser();
		XMLReader mXMLReader = mSAXParser.getXMLReader();
		mXMLReader.setContentHandler(mDefaultHandler);
		mXMLReader.parse(new InputSource(mInputStream));
	}
}
